Combining Model Checking and Data-Flow Analysis
نویسندگان
چکیده
Until recently, model checking and data-flow analysis — two traditional approaches to software verification — were used independently and in isolation for solving similar problems. Theoretically, the two different approaches are equivalent; they are two different ways to compute the same solution to a problem. In recent years, new practical approaches have shown how to combine the approaches and how to make them benefit from each other — model-checking techniques can make data-flow analyses more precise, and data-flow-analysis techniques can make model checking more efficient. This chapter starts by discussing the relationship (differences and similarities) between type checking, data-flow analysis, and model checking. Then we define algorithms for data-flow analysis and model checking in the same formal setting, called configurable program analysis. This identifies key differences that make us call an algorithm a “model-checking” algorithm or a “data-flow-analysis” algorithm. We illustrate the effect of using different algorithms for running certain classic example analyses and point out the reason for one algorithm being “better” than the other. The chapter presents combined verification techniques in the framework of configurable program analysis, in order to emphasize techniques used in data-flow analysis and in model checking. Besides the iterative algorithm that is used to illustrate the similarities and differences between data-flow analysis and model checking, we discuss different algorithmic approaches for constructing program invariants. To show that the border between data-flow analysis and model checking is blurring and disappearing, we also discuss directions in tool implementations for combined verification approaches. Dirk Beyer Ludwig-Maximilians-Universität München, Munich, Germany Sumit Gulwani Microsoft Research, Redmond, WA, USA David A. Schmidt Kansas State University, Manhattan, KS, USA
منابع مشابه
Specification-based Verification of Incomplete Programs
Recently, formal methods like model checking or theorem proving have been considered efficient tools for software verification. However, when practically applied, those techniques suffer high complexity cost. Combining static analysis with dynamic checking to deal with this problem has been becoming an emerging trend, which results in the introduction of concolic testing technique and its varia...
متن کاملTracking Dependent Information Flows
Ensuring the compliance of developed software with security requirements is a challenging task due to imprecision on the security guidelines definition, and to the lack of automatic and formal means to lead this verification. In this paper, we present our approach that aims at integrating the formal specification and verification of security guidelines in early stages of the development life cy...
متن کاملIterable Forward Reachability Analysis of Monitor-DPNs
There is a close connection between data-flow analysis and model checking as observed and studied in the nineties by Steffen and Schmidt. This indicates that automata-based analysis techniques developed in the realm of infinite-state model checking can be applied as data-flow analyzers that interpret complex control structures, which motivates the development of such analysis techniques for eve...
متن کاملCombining Theorem Proving and Model Checking for Certification of Behavioral Synthesis Flows
We develop a framework for certifying behavioral synthesis flows. Certification is decomposed into verified and verifying components, which are discharged by theorem proving and model checking respectively. The bridge between these components is provided by a new formal structure, clocked control data flow graph (CCDFG), that serves as the golden circuit model used in this framework. We discuss...
متن کاملData-Flow Analysis as Model Checking Within the jABC
This paper describes how the jABC, a generic framework for library-based program development, and two of its plugins the Model Checker and a flow graph converter form a framework for intraprocedural data-flow analysis via model checking. Based on functionalities provided by the Soot program analysis platform, the converter generates graph structures from Java classes. Data flow analyses are the...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017